//根据new的概念实现

function cNew(fn, ...args) {
  let obj = {}   //创建一个新对象
  obj.__proto__ = fn.prototype
  console.log(obj.__proto__)  //将原型链接到对象身上
  let result = fn.call(obj, ...args)  //将this绑定到obj上
  return typeof (result) == "object" ? result : obj  //若构造函数返回的是对象则将返回原构造函数的对象 如果不是则返回新创建的对象
}
function jack(name, age) {
  this.name = name
  this.age = age
}

let t = cNew(jack, 'jack', 13)
console.log(t.age)